<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../day54/jquery-3.6.0.min.js"></script>
    <style>
        * {
            padding: 0;
            margin: 0;
        }

        h3 {
            padding: 20px 10px;
        }

        li {
            list-style: none;
        }

        .list li {
            line-height: 45px;
            text-indent: 10px;
            border: 1px solid #333;
        }

        .buttonGroup {
            margin-top: 20px;
        }

        .active {
            background-color: #6ff;
        }

        .buttonGroups {
            padding: 10px;
        }
    </style>
</head>
<body>
    <div id="demo" class="wrap">
        <div class="buttonGroups">
            <button>remove</button>
            <button>detach</button>
            <button>empty</button>
        </div>
        <ul class="list">
            <li class="first">01</li>
            <li>02</li>
            <li class="mid">03</li>
            <li class="four">04</li>
            <li>05</li>
            <li class="last"><span>06</span></li>
        </ul>
    </div>
</body>
<script>
    // 删除的语法
    // remove()  从DOM中删除所有匹配的元素。  返回值=> 被删除的元素形成的jquery对象
    // 这个方法不会把匹配的元素从jQuery对象中删除，因而可以在将来再使用这些匹配的元素。但除了这个元素本身得以保留之外，其他的比如绑定的事件，附加的数据等都会被移除。

    // detach()  从DOM中删除所有匹配的元素。  返回值=> 被删除的元素形成的jquery对象
    // 这个方法不会把匹配的元素从jQuery对象中删除，因而可以在将来再使用这些匹配的元素。与remove()不同的是，所有绑定的事件、附加的数据等都会保留下来。

    // 附加的数据
    $(".list li").each(function (index) {
        $(this).data("num", index);
    })

    // 绑定的事件
    $(".list li").click(function () {
        console.log($(this).data("num"));
    })

    $("button").eq(0).click(function () {
        var $ele = $(".mid").remove();
        setTimeout(() => {
            $ele.insertBefore(".four");
        }, 2000);
    })
    $("button").eq(1).click(function () {
        var $ele = $(".mid").detach();
        setTimeout(() => {
            $ele.insertBefore(".four");
        }, 2000);
    })
    $("button").eq(2).click(function () {
        $(".list").empty();  //  $(".list").html("");
    })
</script>
</html>